Data processing system having a synchronous memory with an output circuit which selectively outputs groups of M data bits

ABSTRACT

A synchronous memory ( 30 ), comprising a row address circuit ( 48,50 ) latches a row address signal in response to a system clock signal and a binary select signal. The row address circuit produces at least one row select signal. A column address circuit ( 49,51-54 ) latches an initial column address signal in response to the system clock signal and the binary select signal. The column address circuit produces a plurality of column select signals in synchronization with the system clock signal. A memory array ( 75 ) is arranged in rows and columns of memory cells. Each memory cell stores a respective data bit. The memory array simultaneously produces an integral multiple of M data bits in response to the row select signal and the plurality of column select signals. An output circuit (OMUX) is coupled to receive the system clock signal and the integral multiple of M data bits. The output circuit produces a first data bit from a first group of M data bits on a bus ( 25 ) having M leads at a first time and a second data bit from a second group of M data bits on the bus having M leads at a second time after the first time in response to the system clock signal.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a division of application Ser. No. 08/262,161, filed Jun. 17, 1994, which is a continuation of application Ser. No. 07/783/436, filed Oct. 24, 1991, now abandoned.

U.S. Pat. application Ser. No. 07/690,207, filed Apr. 23, 1991, now abandoned in favor of continuation U.S. patent application Ser. No. 08/184,749, filed Jan. 21, 1994, now U.S. Pat. No. 5,390,149; U.S. patent application Ser. No. 09/454,825, filed Dec. 6, 1999; and U.S. patent application Ser. No. 09/457,199, filed Dec. 6, 1999, are hereby incorporated by reference.

FIELD OF THE INVENTION

This invention relates to a dynamic random access memory (DRAM) arranged for operating in a data processing system.

BACKGROUND OF THE INVENTION

In the past, semiconductor dynamic random access memory operated faster than the associated microprocessor. During the late 1970's and early 1980's, the microcomputer market was in the early stages of development. At that time, a microcomputer system included a microprocessor and a dynamic random access memory. In a microcomputer arrangement, the microprocessor ran synchronously in response to a clock signal, but the dynamic random access memory ran asynchronously with respect to the operation of the microprocessor. The microprocessor clock was applied to controller circuit that was interposed between the microprocessor and the dynamic random access memory. In response to the microprocessor clock signal, the controller derived other control or clock signals which ran the dynamic random access memory operation.

Typical operating speeds of the microprocessor and the dynamic random access memory were different from each other. A microprocessor cycle time was in a range of 400-500 nanoseconds while a dynamic random access memory cycle time was approximately 300 nanoseconds. Thus the dynamic random access memory was able to operate faster than its associated microprocessor. The memory completed all of its tasks with time to spare. As a result, the microprocessor operated at its optimum speed without waiting for the memory to write-in data or read out data.

Subsequently, as the semiconductor art developed, the operating speeds of microprocessors and memory devices have increased. Microprocessor speeds, however, have increased faster than dynamic random access memory speeds. Now microprocessors operate faster than their associated dynamic random access memory. For instance, a microprocessor cycle time is approximately 40 nanoseconds and a dynamic random access memory cycle time approximately 120 nanoseconds. The microprocessor completes all its tasks but must wait significant periods of time for the dynamic random access memory.

Having the microprocessor waiting for the memory is a problem that has been attracting the attention of many microcomputer designers. High speed static cache memories have been added to the microcomputer systems to speed up access to data stored in the memory. A significant part of the problem is to speed up access to data in the memory without significantly increasing the cost of the microcomputer system. Cache memory, however, is significantly more expensive than dynamic random access memory.

An existing problem with dynamic random access memory devices is that they require a substantial amount of peripheral circuitry between the microprocessor and the memory for generating several control signals. So many interdependent control signals are generated by long logic chains within the peripheral circuitry that microcomputer systems designers must resolve very complex timing problems. The delay caused by the timing problems and the fact that memories now are accessed slower than the associated microprocessor cause problems of excessive time delays in microcomputer system operations.

In addition to the foregoing problems, the prior art arrangements, such as described in U.S. Pat. No. 5,390,149, include many control leads between the microprocessor and the dynamic random access memory. Those control leads include several chip-to-chip interconnections. Generally, integrated circuit designers desire to reduce the number of off-chip leads from a device. Thus, there is a problem in actually reducing the number of off-chip leads between the microprocessor and the dynamic random access memory.

SUMMARY OF THE INVENTION

These and other problems are solved by a digital processor and a system clock circuit for producing a system clock signal having timing edges for controlling operation of the digital processor. A synchronous random access memory, directly responsive to the edges of the system clock signal and an address select signal, is arranged for accessing addressable storage cells within the synchronous dynamic random access memory to write data into the storage cells or read data out from the storage cells. Row address strobe (RAS) and column address strobe (CAS) control signals are not required because row and column address timing is initiated by the single address select signal. This synchronous random access memory device may be fabricated as a dynamic or as a static storage device.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the invention may be derived by reading the following detailed description with reference to the drawings wherein:

FIG. 1 is a block diagram of a data processing system including a synchronous random access memory;

FIG. 2 is a block diagram of a synchronous random access memory;

FIG. 3 is a timing diagram of a synchronous random access read operation;

FIG. 4 is a timing diagram of a synchronous random access write operation;

FIG. 5 is a logic schematic diagram of a timing gate circuit;

FIG. 6 is a timing diagram for the operation of the timing gate circuit of FIG. 5; and

DETAILED DESCRIPTION

Referring now to FIG. 1, a data processing system 15 includes a digital processor 20 which receives digital data by way of a bus 17 from an input peripheral device 24. The digital processor 20 may be a microprocessor. Control signals pass between the digital processor 20 and the input peripheral device 24 by was of a control bus 18. The digital processor 20 processes that data and other data, all of which may be transmitted by way of a data bus 25 for storage in and retrieval from a synchronous memory device 30. The digital processor 20 also sends resulting output data via an output data bus 32 to an output peripheral device 40 where the output data may be displayed or used for reading, viewing or controlling another device that is not shown. Control signals are transmitted between the digital processor 20 and the synchronous memory device 30 by way of a control bus 60. Control signals also are transmitted between the digital processor 20 and the output peripheral device 40 by way of a control bus 62. System clock signals are produced by a system clock device 65 and are applied through a clock lead 67 to the digital processor 20, the synchronous memory device 30, the input peripheral device 24, and the output peripheral device 40.

From time to time during operation of the data processing system 15, the digital processor 20 accesses the synchronous memory 30 for writing data into storage cells or for reading data from the storage cells thereof. Storage cell row and column addresses, generated by the digital processor 20, are applied through a address bus 45 to the synchronous memory 30. Data may be sent by way of the data bus 25 either from the digital processor 20 to be written into the synchronous memory 30 or to be read from the synchronous memory 30 to the digital processor 20.

Control signals, produced by the digital processor 20 an transmitted by way of the control bus 60 to the synchronous memory 30 include an address select signal {overscore (ADS)}, a write signal {overscore (WE)}, a burst select signal {overscore (BT)}, a burst select direction signal +/−, a wrap select signal {overscore (WP)}, a wrap-type signal WT, a wrap-length signal WL, and others. Control signals may also be transmitted by way of the control bus 60 from the synchronous memory 30 to the digital processor 20.

Referring now to FIG. 2, the synchronous random access memory 30 includes a memory array 75 of metal-oxide-semiconductor (MOS) dynamic storage cells arranged in addressable rows and columns. The memory array 75 of storage cells is similar to the well known arrays of cells used in dynamic random access memory devices. Either complementary metal-oxide-semiconductor (CMOS) or bipolar complementary metal-oxide-semiconductor (BICMOS) technology may be used for fabricating the memory array 75.

Several other circuit blocks including timing and control circuit 42, row address buffer 48, column address buffer 49, row address decoder 50, transfer gates 51 and 53, column address counter 52, column address decoder 54, wrap address scrambler and multiplexer (MUX) 61, output multiplexer (OMUX) and data-out driver, input multiplexer (IMUX) and data-in driver 64, mask register 93, and count control circuit 94 are shown in FIG. 2. These other circuit blocks are designed and arranged for operating the array of storage cells synchronously with the digital processor 20 of FIG. 1 in response to the common system clock signal CLK. The circuit blocks other than the array of storage cells may be fabricated as either CMOS or BICMOS circuits.

The synchronous random access memory 30 is operable for synchronous random access read or write operations, for synchronous burst read or write operations, and for synchronous wrap read or write operations. Several types of synchronous operations are to be described herein with reference to timing diagrams. In the timing diagrams, a DON'T CARE state is represented by cross-hatching.

Referring now to FIGS. 2 and 3 for a synchronous random access read operation, an N bit wide row address and the address select signal {overscore (ADS)} are applied to the address bus 45 and a lead 46 of the control bus 60. Control signals, such as the signal {overscore (ADS)} and others including a write signal WE, a burst select signal {overscore (BT)}, and a wrap select signal {overscore (WP)}, are active low signals. The write signal {overscore (WE)} on a lead 47 of the control bus 60 being high, at clock cycle time 2, designates a read operation. The synchronous read operation commences at a falling edge of the system clock signal CLK at clock cycle time 1. For this illustrative embodiment, the system clock times operations in synchronism at the negative-going edges of the clock pulses, such as at the clock cycle times 1, 2, 3, etc. In other embodiments, not shown herein, the system may time operations at the positive-going edges or on both negative-going and positive-going edges of the clock pulses.

When the system clock CLK has a negative-going edge while the row address is applied at the clock cycle time 1 and the address select signal {overscore (ADS)} is low, the row address is latched into the row address buffer 48.

Since the illustrative embodiment has an N bit wide address bus, that bus is time shared by row addresses and column addresses. During the clock cycle time 2 following the latching of the row address into the row address buffer 48, a column address is applied to the address bus 45 and is latched into the column address buffer 49. During the clock cycle time 2, the address select signal {overscore (ADS)} and the clock signal latch the column address into the column address buffer 49 in this multiplexed address system.

Concurrently with the latching of the column address into the column address buffer, the row address is being decoded through the row address decoder 50. The row address decoder 50 decodes the binary number row address into a one-out-of-2 ^(N) selection. As a result of the one-out-of-2 ^(N) selection, an active signal is applied to the wordline of the one selected row. This wordline remains selected throughout the remainder of the random access read operation.

At the next negative-going edge of the system clock CLK, a load initial address signal LIA enables a group of load count transfer gates 51 to move the initial column address into upper count and lower count sections of a column address counter 52. The most significant bits of the column address are latched into the upper count section 58 and the least significant bits of the column address are latched into the lower count section 59 of the column address counter 52. All of those address bits in the column address counter 52 represent the initial column address to be applied to the memory array for the read out operation. Since the operation being described is a synchronous random access operation, the initial column address is the only column address to be applied to the memory array during the read operation.

The most significant bits of the initial column address are applied from the upper count section 58 through gates 53 to the column address decoder 54 for selecting M columns of storage cell of the memory array, from which data are to be read out. These most significant bits of the column address are decoded by the column address decoder 54 to enable a block of M columns of storage cells in the memory array 75.

Data bits are read from a group of M storage cells, determine by a part of the decoded column address, i.e., the decoded most significant bits of the column address. These M data bits are transferred in parallel from the memory array 75 through a group of leads 55 to an output multiplexer OMUX where they are latched for output during the clock cycle time 4.

A one-out-of-M selection is made by the output multiplexer OMUX in response to control signals 63 applied to the output multiplexer from the lower count section 59 of the column address counter 52 through wrap address scrambler and mux 61. The least significant bits of the initial column address, residing in the lower count section 59, determine which bit latched in the output multiplexer OMUX is the one-out-of-M bit to be gated through the output multiplexer to a lead in the data bus 25.

A first block of M columns and a next adjacent higher order block of M columns of storage of the memory array 75 are addressed simultaneously by the column address decoder 54. Bits are transmitted through the output multiplexer OMUX from a first one of those blocks while the bits from the second block of M columns are accessed from the memory array and are applied to the output multiplexer OMUX. When the first set of addresses is exhausted, the sequence of addresses continues through the second set of M addresses while a third set of M addresses is applied to the output multiplexer in place of the first set. By thus alternating sets of addresses in a rising order, the desired burst of bits is read out of the memory array 75. These alternating sets of addresses for selecting the desired sequence of bits enables the data to be read out through the output multiplexer OMUX to the data bus 25 in a continuous stream without having to wait for each address to be supplied from the digital processor 20 of FIG. 1. The sequential bits of data transmitted out of the output multiplexer OMUX are in a continuous stream at the rate of the system clock signal CLK.

A more complete description of the column address counter 52 and of the output multiplexer can be found in the U.S. Pat. No. 5,390,149, mentioned previously and incorporated herein by reference.

Referring now to FIGS. 2 and 4 for a synchronous random access write operation, row addressing and column addressing occur similar to the synchronous random access read operation except that the write signal {overscore (WE)} is at a low level at the clock cycle time 2 to designate the synchronous random access write operation. The decoded row address from the row decoder 50 enables one row of storage cells in the memory array 75. The most significant bits of the column address, decoded by the column decoder 54, enable a block of M column leads in the array. The selected set of storage cells at the addressed intersections of the addressed row and the set of M addressed columns are enabled to receive the data that is to be written. The least significant bits of the column address (residing in the lower count section 59 of the column address counter 52) determine control signals 66 that are applied to the input multiplexer IMUX through wrap address scrambler and mux 61 for determining which one-out-of-M bit on the data bus 25 is transmitted through the input multiplexer IMUX to be written into the memory array 75. The one-out-of-M bit is applied to the associated column lead of the selected block of columns of storage cells in the memory array 75. That bit of data is written into the storage cell at the address selected by the row address and the initial column address. The other M−1 bits of data, related to the selected set of M columns, are not written into the memory array 75 because the input multiplexer IMUX does not transmit those M−1 bits to the associated column lines of the memory array 75.

A more complete description of the input multiplexer IMUX can be found in the U.S. Pat. No. 5,390,149, mentioned previously.

The next subsequent operation of the memory array following either the synchronous read operation or the synchronous write operation may be another synchronous random access operation, i.e., either a synchronous read operation or a synchronous write operation. The same row and column addresses or a different row or column address can be used to select the storage cell for the next access. A synchronous burst or a synchronous wrap operation also may follow the synchronous random access read or write operations.

In a synchronous burst read-up operation after the initial column address is decoded, the address residing in the upper and lower count sections 58 and 59 is incremented under control of the clock signal COUNT. The next address produced in the upper and lower count sections 58 and 59 is the initial column address incremented by one. The next sequential bit is transmitted through the output multiplexer OMUX from the column of storage cells of the memory thereby addressed.

A first block of M columns and a next higher order block of M columns of storage of the memory array 75 are addressed simultaneously by the column address decoder 54. Bits are transmitted through the output multiplexer OMUX from a first one of those blocks while bits from the second block of M columns are accessed from the memory array and are applied to the output multiplexer OMUX. When the first set of addresses is exhausted, the sequence of address continues through the second set of M addresses while a third set of M addresses is applied to the output multiplexer in place of the first set. By thus alternating sets of addresses in a rising order, the desired burst of bits is read out of the memory array 75. These alternating sets of addresses for selecting the desired sequence of bits enables the data to be read out through the output multiplexer OMUX to the data bus 25 in a continuous stream without having to wait for each address to be supplied from the original digital processor 20 of FIG. 1. The sequential bits of data transmitted out of the output multiplexer OMUX are in a continuous stream at a rate of the system clock CLK.

In the foregoing discussion of the synchronous read and write operations, the illustrative embodiment includes an N bit wide address bus 45 that is time-shared by row and column addresses. In another useful embodiment, not shown, the address bus may be wide enough so that both the row and column addresses are applied concurrently in parallel. As a result, both addresses are latched simultaneously into their respective address buffers, i.e., row address buffer 48 and column address buffer 49 when the address select signal {overscore (ADS)} is low when the system clock CLK goes low Otherwise the synchronous random access read and write operations proceed, as previously described.

It is noted that for the synchronous random access write operations, the row and column addresses may be latched either before data is latched or at the same time.

In addition to the synchronous random access read and write operations, the embodiment of FIGS. 1 and 2 can perform a synchronous burst read operation and a synchronous burst write operation.

In the synchronous burst read operation, a group of bits is read rapidly from a sequence of column addresses along a common row of storage cells in the memory array 75. The sequence of addresses can be either in an ascending order of column addresses (UP) or in a descending order of column addresses (DOWN). The direction, or polarity, of the sequence of column addresses is determined by a burst direction signal +/− on a lead 56 of the control bus 60. The length of the burst, i.e., the number of bits in the burst, is determined by the duration of the low burst select signal {overscore (BT)} that is applied, on a lead 57 of the control bus 60, by the digital processor 20 of FIG. 1. When the burst select signal {overscore (BT)} goes high, the synchronous burst read operation is terminated.

Generally synchronous burst read and write operations and synchronous wrap read and write operations are similar to random access read and write operations. There are some differences. Except for the manner in which addresses are latched into the address buffers, a synchronous operation (either a synchronous burst read, a synchronous burst write operation, a synchronous wrap read operation, or a synchronous wrap write operation) of the synchronous memory device 30 of FIG. 2 is accomplished in manner which is similar to the operation described in the aforementioned U.S. Pat. No. 5,390,149. The upper count section 58 and the lower count section 59 of the column address counter 52 operate as described in the aforementioned patent application.

In FIG. 2, the mask register 93 receives and stores coded mask data from the data bus 25. Responsive to the system clock signal CLK, the mask register 93 applies the mask data to control the operation of the count control circuit 94.

Count control circuit 94, in response to the status of the burst control signal BURST, the wrap control signal WRAP, the mask data, and the system clock CLK, produces a clock signal COUNT for controlling the operation of the column address counter 52 and the wrap address scrambler and multiplexer 61.

Timing and control circuit 42 of FIG. 2 is responsive to the address select signal {overscore (ADS)}, the write signal {overscore (WE)}, the burst select signal {overscore (BT)}, the burst direction signal +/−, the wrap select signal {overscore (WP)}, the wrap-type signal WT, the wrap-length signal WL, and the system clock signal CLK for producing control signals, such as, the row and column address latching signals XAL and YAL, the load initial address signal LIA, the write enable signal WEN, the data-in latch signal DINL, the burst control signal BURST, and the wrap control signal WRAP.

In the timing and control circuit 42 of FIG. 2, all of the signals from the control bus 60 are gated by the system clock signal CLK on lead 67 so that all control signals internal to the synchronous random access memory 30, such as, the signals XAL, YAL, LIA, WEN, DINL, BURST and WRAP are synchronized with the system clock signal CLK. This feature assures that the functions of the synchronous random access are synchronized with that clock. Any logic circuitry external to the synchronous random access memory 30 need not be concerned with any complex timing relationships between the various signals transmitted on the control bus 60.

Referring now to FIG. 5, there are shown two exemplary gates 101 and 102 of the timing and control circuit 42 of FIG. 2. In gate 101, the address select signal {overscore (ADS)} is gated by the system clock signal CLK, i.e., sampled on the negative-going edge of the pulses of the system clock signal CLK. The resulting output of the gate 101 is the row address latch signal XAL. In the gate 102, the output of gate 101 also is gated by the system clock signal CLK. The resulting output of the gate 102 is the column address latch signal YAL.

FIG. 6 is a timing diagram for the operation of the gates 101 and 102. As shown in FIG. 6, the row address latch signal XAL is activated by the negative-going edge of the system clock CLK at the system clock cycle time 2 when the address select signal {overscore (ADS)} is low. The column address latch signal YAL is activated by the negative-going edge of the system clock CLK one clock cycle later i.e., at system clock cycle time 3 when the address select signal {overscore (ADS)} is low. The timing of the negative-going edge of the address select signal {overscore (ADS)} is irrelevant, as long as the level of that signal is low at the negative-going edge of the system clock signal CLK.

Similarly, all of the other internal control signals are responsive to sampled levels of the external control signals on the control bus 60 at times of the negative-going edges of the system clock signal CLK.

The foregoing describes data processing system arrangements which represent illustrative embodiments of the invention. Those embodiments and others made obvious in view thereof are considered to fall within the scope of the appended claims. 

What is claimed is:
 1. A synchronous memory, comprising: a row address circuit coupled to receive a row address signal in response to a system clock signal and a binary select signal, the row address circuit arranged to produce a row select signal; a column address circuit coupled to receive an initial column address signal in response to the system clock signal and the binary select signal, the column address circuit arranged to produce a plurality of column select signals in synchronization with the system clock signal; a memory array arranged in rows and columns of memory cells, each memory cell arranged to store a respective data bit, the memory array arranged to produce an integral multiple of M data bits in response to the row select signal and the plurality of column select signals; and an output circuit coupled to receive the system clock signal and the integral multiple of M data bits, the output circuit arranged to produce a first data bit from a first group of M data bits at a first time and a second data bit from a second group of M data bits at a second time after the first time in response to the system clock signal.
 2. A synchronous memory as in claim 1, wherein the memory array simultaneously produces the integral multiple of M data bits.
 3. A synchronous memory as in claim 1, wherein the output circuit produces the data bits from the first and second groups in response to the positive-going edge of the system clock signal and in response to the negative-going edge of the system clock signal.
 4. A synchronous memory as in claim 1, wherein the output circuit is coupled to a bus having M leads, the output circuit producing the first group of M data bits on respective ones of said M leads and producing the second group of M data bits on respective ones of said M leads.
 5. A synchronous memory as in claim 1, wherein the memory cells are dynamic memory cells.
 6. A synchronous memory as in claim 1, wherein the memory cells are static memory cells.
 7. A synchronous memory as in claim 1, wherein the column address circuit comprises: an address counter circuit coupled to receive the initial column address signal, the address counter circuit arranged to produce a plurality of column address signals in response to the system clock signal; and a column decode circuit coupled to receive the plurality of column address signals, the column decode circuit arranged to produce the plurality of column select signals.
 8. A synchronous memory as in claim 1, wherein the binary select signal has a first logic state and a second logic state, the second logic state different from the first logic state, and wherein the first logic state disables the row and column address circuits, and wherein the second logic state does not disable the row and column address circuits.
 9. A synchronous memory as in claim 1, further comprising a timing and control circuit coupled to receive a plurality of control signals, the timing and control circuit arranged to produce a first and a second control signal in response to the plurality of control signals and the system clock signal.
 10. A synchronous memory as in claim 9, wherein the first control signal corresponds to an order of the data bits produced by the output circuit.
 11. A synchronous memory as in claim 9, wherein the second control signal corresponds to a number of the data bits produced by the output circuit.
 12. A data processing system, comprising: a clock circuit arranged to produce a system clock signal; a digital processor coupled to the clock circuit and arranged to operate synchronously with the system clock signal; a synchronous memory coupled to the digital processor and the clock circuit and arranged to operate synchronously with the system clock signal, the synchronous memory comprising: a row address circuit coupled to receive a row address signal in response to the system clock signal and a binary select signal, the row address circuit arranged to produce a row select signal; a column address circuit coupled to receive an initial column address signal in response to the system clock signal and the binary select signal, the column address circuit arranged to produce a plurality of column select signals in synchronization with the system clock signal; a memory array arranged in rows and columns of memory cells, each memory cell arranged to store a respective data bit, the memory array arranged to produce an integral multiple of M data bits in response to the row select signal and the plurality of column select signals; and an output circuit coupled to receive the system clock signal and the integral multiple of M data bits, the output circuit arranged to produce a first data bit from a first group of M data bits at a first time and a second data bit from a second group of M data bits at a second time after the first time in response to the system clock signal.
 13. A data processing system as in claim 12, wherein the memory array simultaneously produces the integral multiple of M data bits.
 14. A data processing system as in claim 12, wherein the row address signal and the initial column address signal are latched in a single cycle of the system clock signal.
 15. A data processing system as in claim 12, wherein the output circuit produces the data bits from the first and second groups in response to the positive-going edge of the system clock signal and in response to the negative-going edge of the system clock signal.
 16. A data processing system as in claim 12, wherein the output circuit is coupled to a bus having M leads, the output circuit producing the first group of M data bits on respective said M leads and producing the second group of M data bits on respective said M leads.
 17. A data processing system as in claim 12, wherein the memory cells are static memory cells.
 18. A data processing system as in claim 12, wherein the column address circuit comprises: an address counter circuit coupled to receive the initial column address signal, the address counter circuit arranged to produce a plurality of column address signals in response to the system clock signal; and a column decode circuit coupled to receive the plurality of column address signals, the column decode circuit arranged to produce the plurality of column select signals.
 19. A data processing system as in claim 12, wherein the binary select signal has a first logic state and a second logic state, the second logic state different from the first logic state, and wherein the first logic state disables the row and column address circuits, and wherein the second logic state does not disable the row and column address circuits.
 20. A data processing system as in claim 12, further comprising a timing and control circuit coupled to receive a plurality of control signals, the timing and control circuit arranged to produce a first and a second control signal in response to the plurality of control signals and the system clock signal.
 21. A data processing system as in claim 20, wherein the first control signal corresponds to an order of the data bits produced by the output circuit.
 22. A data processing system as in claim 20, wherein the second control signal corresponds to a number of the data bits produced by the output circuit. 